/**
 * 课程查询参数
 */
export interface CourseExperimentQuery extends PageQuery {
  // 课程名称
  keywords?: string;
  // 状态信息
  status?: number;
}

export interface CourseInfo {
  id: number;
  name: string;
  wallpaperUrl: string;
  courseRoles: string[];
  coursePerms: string[];
}

/**
 * 获取课程列表返回参数信息
 */
export interface CourseExperimentPageVO {
  id: number;
  name: string;
  startTime: string;
  endTime: string;
  classes: [];
  teachers: [];
  statusLabel: string;
  createTime: string;
  updateTime: string;
  total: number;
  submit: number;
  correct: number;
  status: number;
  leader: string;
}

/**
 * CreateExperimentForm，添加任务模型对象
 */
export interface AddTaskDataRequest {
  /**
   * 助教列表
   */
  assistants?: number[];
  /**
   * 班级列表
   */
  classes?: number[];
  /**
   * 评阅规则列表
   */
  ruleId?: number;
  /**
   * 任务结束时间
   */
  endTime?: string;
  /**
   * 任务ID
   */
  experimentId?: number;
  /**
   * 上传文件的ID
   */
  fileIds?: number[];
  /**
   * 负责人
   */
  leader?: number;
  /**
   * 任务名称
   */
  name?: string;
  /**
   * 备注信息
   */
  remark?: string;
  /**
   * 任务开始时间
   */
  startTime: string;
  /**
   * 任务状态
   */
  status?: number;
}

/**
 * 查看任务信息
 */
export interface viewTaskDataRequest {
  /**
   * 助教列表
   */
  assistants?: number[];
  /**
   * 班级列表
   */
  classes?: number[];
  /**
   * 评阅规则列表
   */
  ruleId?: number;
  /**
   * 任务结束时间
   */
  endTime?: string;
  /**
   * 负责人
   */
  leader?: number;
  /**
   * 任务名称
   */
  name?: string;
  /**
   * 任务开始时间
   */
  startTime: string;
  /**
   * 任务ID
   */
  experimentId?: number;
  /**
   * 任务状态
   */
  status?: number | boolean;
  /**
   * 备注信息
   */
  remark?: string;

  fileList?: [];
  fileIds?: [];
}

/**
 * 查看任务信息
 */
export interface DetailTaskDataRequest {
  /**
   * 助教ID列表
   */
  assistants?: string[];
  /**
   * 班级ID列表
   */
  classes?: string[];
  /**
   * 结束时间
   */
  endTime?: Date;
  /**
   * 任务附件
   */
  fileList?: [];
  /**
   * 学生提交的任务报告
   */
  expList?: [];
  /**
   * 负责人
   */
  leader?: number;
  /**
   * 任务ID
   */
  id?: number;
  /**
   * 任务负责人
   */
  leaderName?: string;
  /**
   * 任务名
   */
  name?: string;
  /**
   * 任务描述
   */
  remark?: string;
  /**
   * 开始时间
   */
  startTime?: Date;
  /**
   * 任务状态
   */
  status?: number;
  /**
   * 成绩
   */
  grade?: string;
  /**
   * 提交状态
   */
  fileStatus?: number;
  comment?: string;
}
